package com.mkait.thief.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 
 * @TableName user
 */
@TableName(value ="user")
@Data
public class User implements Serializable {
    /**
     * 
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 上级ID
     */
    @TableField(value = "parent_id")
    private Integer parentId;

    /**
     * 微信openid
     */
    @TableField(value = "openid")
    private String openid;

    /**
     * 
     */
    @TableField(value = "username")
    private String username;

    /**
     * 
     */
    @TableField(value = "password")
    private String password;

    /**
     * 手机号
     */
    @TableField(value = "mobile")
    private String mobile;

    /**
     * 
     */
    @TableField(value = "qq")
    private String qq;

    /**
     * 
     */
    @TableField(value = "email")
    private String email;

    /**
     * 子域名
     */
    @TableField(value = "subdomain")
    private String subdomain;

    /**
     * 店铺名称
     */
    @TableField(value = "shop_name")
    private String shopName;

    /**
     * 公告通知
     */
    @TableField(value = "shop_notice")
    private String shopNotice;

    /**
     * 统计代码
     */
    @TableField(value = "statis_code")
    private String statisCode;

    /**
     * 支付页风格
     */
    @TableField(value = "pay_theme")
    private String payTheme;

    /**
     * 支付模板手机端
     */
    @TableField(value = "pay_theme_mobile")
    private String payThemeMobile;

    /**
     * 库存展示方式 1实际库存 2库存范围
     */
    @TableField(value = "stock_display")
    private Integer stockDisplay;

    /**
     * 
     */
    @TableField(value = "money")
    private BigDecimal money;

    /**
     * 
     */
    @TableField(value = "rebate")
    private BigDecimal rebate;

    /**
     * 
     */
    @TableField(value = "freeze_money")
    private BigDecimal freezeMoney;

    /**
     * 0未审核 1已审核
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 是否冻结 0否 1是
     */
    @TableField(value = "is_freeze")
    private Integer isFreeze;

    /**
     * 
     */
    @TableField(value = "create_at")
    private Integer createAt;

    /**
     * IP地址
     */
    @TableField(value = "ip")
    private String ip;

    /**
     * 商户网站
     */
    @TableField(value = "website")
    private String website;

    /**
     * 是否关闭店铺 0否 1是
     */
    @TableField(value = "is_close")
    private Integer isClose;

    /**
     * 商家公告是否自动弹出
     */
    @TableField(value = "shop_notice_auto_pop")
    private Integer shopNoticeAutoPop;

    /**
     * 提现方式
     */
    @TableField(value = "cash_type")
    private Integer cashType;

    /**
     * 是否开启安全登录
     */
    @TableField(value = "login_auth")
    private Integer loginAuth;

    /**
     * 安全登录验证方式，1：短信，2：邮件，3：谷歌密码验证
     */
    @TableField(value = "login_auth_type")
    private Integer loginAuthType;

    /**
     * 谷歌令牌密钥
     */
    @TableField(value = "google_secret_key")
    private String googleSecretKey;

    /**
     * 购卡协议是否自动弹出
     */
    @TableField(value = "shop_gouka_protocol_pop")
    private Integer shopGoukaProtocolPop;

    /**
     * 商家是否自动弹出
     */
    @TableField(value = "user_notice_auto_pop")
    private Integer userNoticeAutoPop;

    /**
     * 用户登录标记
     */
    @TableField(value = "login_key")
    private Integer loginKey;

    /**
     * 订单手续费支付方，0：跟随系统，1：商家承担，2买家承担
     */
    @TableField(value = "fee_payer")
    private Integer feePayer;

    /**
     * 结算方式，-1：跟随系统，1:T1结算，0:T0结算
     */
    @TableField(value = "settlement_type")
    private Integer settlementType;

    /**
     * 代理商品对接密钥
     */
    @TableField(value = "agent_key")
    private String agentKey;

    /**
     * 商品代理功能开关 0：关闭，1：开启
     */
    @TableField(value = "agent_goods_switch")
    private Integer agentGoodsSwitch;

    /**
     * 代理是否需要审核：0不审核 1审核
     */
    @TableField(value = "need_check_agent")
    private Integer needCheckAgent;

    /**
     * 
     */
    @TableField(value = "music")
    private String music;

    /**
     * 用户电脑端模板
     */
    @TableField(value = "pc_template")
    private String pcTemplate;

    /**
     * 用户手机端模板
     */
    @TableField(value = "mobile_template")
    private String mobileTemplate;

    /**
     * 
     */
    @TableField(value = "wechat_stock_notify")
    private Integer wechatStockNotify;

    /**
     * 
     */
    @TableField(value = "wechat_sell_notify")
    private Integer wechatSellNotify;

    /**
     * 
     */
    @TableField(value = "wechat_signin_notify")
    private Integer wechatSigninNotify;

    /**
     * 
     */
    @TableField(value = "wechat_cash_notify")
    private Integer wechatCashNotify;

    /**
     * 
     */
    @TableField(value = "wechat_complaint_notify")
    private Integer wechatComplaintNotify;

    /**
     * 
     */
    @TableField(value = "oauth2_qq_openid")
    private String oauth2QqOpenid;

    /**
     * 
     */
    @TableField(value = "oauth2_wechat_openid")
    private String oauth2WechatOpenid;

    /**
     * 
     */
    @TableField(value = "rate_type")
    private Integer rateType;

    /**
     * 
     */
    @TableField(value = "lock_card")
    private Integer lockCard;

    /**
     * 
     */
    @TableField(value = "payapi")
    private Integer payapi;

    /**
     * 
     */
    @TableField(value = "paykey")
    private String paykey;

    /**
     * 
     */
    @TableField(value = "fee_money")
    private BigDecimal feeMoney;

    /**
     * 
     */
    @TableField(value = "deposit_money")
    private BigDecimal depositMoney;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        User other = (User) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId()))
            && (this.getOpenid() == null ? other.getOpenid() == null : this.getOpenid().equals(other.getOpenid()))
            && (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername()))
            && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()))
            && (this.getMobile() == null ? other.getMobile() == null : this.getMobile().equals(other.getMobile()))
            && (this.getQq() == null ? other.getQq() == null : this.getQq().equals(other.getQq()))
            && (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
            && (this.getSubdomain() == null ? other.getSubdomain() == null : this.getSubdomain().equals(other.getSubdomain()))
            && (this.getShopName() == null ? other.getShopName() == null : this.getShopName().equals(other.getShopName()))
            && (this.getShopNotice() == null ? other.getShopNotice() == null : this.getShopNotice().equals(other.getShopNotice()))
            && (this.getStatisCode() == null ? other.getStatisCode() == null : this.getStatisCode().equals(other.getStatisCode()))
            && (this.getPayTheme() == null ? other.getPayTheme() == null : this.getPayTheme().equals(other.getPayTheme()))
            && (this.getPayThemeMobile() == null ? other.getPayThemeMobile() == null : this.getPayThemeMobile().equals(other.getPayThemeMobile()))
            && (this.getStockDisplay() == null ? other.getStockDisplay() == null : this.getStockDisplay().equals(other.getStockDisplay()))
            && (this.getMoney() == null ? other.getMoney() == null : this.getMoney().equals(other.getMoney()))
            && (this.getRebate() == null ? other.getRebate() == null : this.getRebate().equals(other.getRebate()))
            && (this.getFreezeMoney() == null ? other.getFreezeMoney() == null : this.getFreezeMoney().equals(other.getFreezeMoney()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getIsFreeze() == null ? other.getIsFreeze() == null : this.getIsFreeze().equals(other.getIsFreeze()))
            && (this.getCreateAt() == null ? other.getCreateAt() == null : this.getCreateAt().equals(other.getCreateAt()))
            && (this.getIp() == null ? other.getIp() == null : this.getIp().equals(other.getIp()))
            && (this.getWebsite() == null ? other.getWebsite() == null : this.getWebsite().equals(other.getWebsite()))
            && (this.getIsClose() == null ? other.getIsClose() == null : this.getIsClose().equals(other.getIsClose()))
            && (this.getShopNoticeAutoPop() == null ? other.getShopNoticeAutoPop() == null : this.getShopNoticeAutoPop().equals(other.getShopNoticeAutoPop()))
            && (this.getCashType() == null ? other.getCashType() == null : this.getCashType().equals(other.getCashType()))
            && (this.getLoginAuth() == null ? other.getLoginAuth() == null : this.getLoginAuth().equals(other.getLoginAuth()))
            && (this.getLoginAuthType() == null ? other.getLoginAuthType() == null : this.getLoginAuthType().equals(other.getLoginAuthType()))
            && (this.getGoogleSecretKey() == null ? other.getGoogleSecretKey() == null : this.getGoogleSecretKey().equals(other.getGoogleSecretKey()))
            && (this.getShopGoukaProtocolPop() == null ? other.getShopGoukaProtocolPop() == null : this.getShopGoukaProtocolPop().equals(other.getShopGoukaProtocolPop()))
            && (this.getUserNoticeAutoPop() == null ? other.getUserNoticeAutoPop() == null : this.getUserNoticeAutoPop().equals(other.getUserNoticeAutoPop()))
            && (this.getLoginKey() == null ? other.getLoginKey() == null : this.getLoginKey().equals(other.getLoginKey()))
            && (this.getFeePayer() == null ? other.getFeePayer() == null : this.getFeePayer().equals(other.getFeePayer()))
            && (this.getSettlementType() == null ? other.getSettlementType() == null : this.getSettlementType().equals(other.getSettlementType()))
            && (this.getAgentKey() == null ? other.getAgentKey() == null : this.getAgentKey().equals(other.getAgentKey()))
            && (this.getAgentGoodsSwitch() == null ? other.getAgentGoodsSwitch() == null : this.getAgentGoodsSwitch().equals(other.getAgentGoodsSwitch()))
            && (this.getNeedCheckAgent() == null ? other.getNeedCheckAgent() == null : this.getNeedCheckAgent().equals(other.getNeedCheckAgent()))
            && (this.getMusic() == null ? other.getMusic() == null : this.getMusic().equals(other.getMusic()))
            && (this.getPcTemplate() == null ? other.getPcTemplate() == null : this.getPcTemplate().equals(other.getPcTemplate()))
            && (this.getMobileTemplate() == null ? other.getMobileTemplate() == null : this.getMobileTemplate().equals(other.getMobileTemplate()))
            && (this.getWechatStockNotify() == null ? other.getWechatStockNotify() == null : this.getWechatStockNotify().equals(other.getWechatStockNotify()))
            && (this.getWechatSellNotify() == null ? other.getWechatSellNotify() == null : this.getWechatSellNotify().equals(other.getWechatSellNotify()))
            && (this.getWechatSigninNotify() == null ? other.getWechatSigninNotify() == null : this.getWechatSigninNotify().equals(other.getWechatSigninNotify()))
            && (this.getWechatCashNotify() == null ? other.getWechatCashNotify() == null : this.getWechatCashNotify().equals(other.getWechatCashNotify()))
            && (this.getWechatComplaintNotify() == null ? other.getWechatComplaintNotify() == null : this.getWechatComplaintNotify().equals(other.getWechatComplaintNotify()))
            && (this.getOauth2QqOpenid() == null ? other.getOauth2QqOpenid() == null : this.getOauth2QqOpenid().equals(other.getOauth2QqOpenid()))
            && (this.getOauth2WechatOpenid() == null ? other.getOauth2WechatOpenid() == null : this.getOauth2WechatOpenid().equals(other.getOauth2WechatOpenid()))
            && (this.getRateType() == null ? other.getRateType() == null : this.getRateType().equals(other.getRateType()))
            && (this.getLockCard() == null ? other.getLockCard() == null : this.getLockCard().equals(other.getLockCard()))
            && (this.getPayapi() == null ? other.getPayapi() == null : this.getPayapi().equals(other.getPayapi()))
            && (this.getPaykey() == null ? other.getPaykey() == null : this.getPaykey().equals(other.getPaykey()))
            && (this.getFeeMoney() == null ? other.getFeeMoney() == null : this.getFeeMoney().equals(other.getFeeMoney()))
            && (this.getDepositMoney() == null ? other.getDepositMoney() == null : this.getDepositMoney().equals(other.getDepositMoney()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode());
        result = prime * result + ((getOpenid() == null) ? 0 : getOpenid().hashCode());
        result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode());
        result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
        result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
        result = prime * result + ((getQq() == null) ? 0 : getQq().hashCode());
        result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
        result = prime * result + ((getSubdomain() == null) ? 0 : getSubdomain().hashCode());
        result = prime * result + ((getShopName() == null) ? 0 : getShopName().hashCode());
        result = prime * result + ((getShopNotice() == null) ? 0 : getShopNotice().hashCode());
        result = prime * result + ((getStatisCode() == null) ? 0 : getStatisCode().hashCode());
        result = prime * result + ((getPayTheme() == null) ? 0 : getPayTheme().hashCode());
        result = prime * result + ((getPayThemeMobile() == null) ? 0 : getPayThemeMobile().hashCode());
        result = prime * result + ((getStockDisplay() == null) ? 0 : getStockDisplay().hashCode());
        result = prime * result + ((getMoney() == null) ? 0 : getMoney().hashCode());
        result = prime * result + ((getRebate() == null) ? 0 : getRebate().hashCode());
        result = prime * result + ((getFreezeMoney() == null) ? 0 : getFreezeMoney().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getIsFreeze() == null) ? 0 : getIsFreeze().hashCode());
        result = prime * result + ((getCreateAt() == null) ? 0 : getCreateAt().hashCode());
        result = prime * result + ((getIp() == null) ? 0 : getIp().hashCode());
        result = prime * result + ((getWebsite() == null) ? 0 : getWebsite().hashCode());
        result = prime * result + ((getIsClose() == null) ? 0 : getIsClose().hashCode());
        result = prime * result + ((getShopNoticeAutoPop() == null) ? 0 : getShopNoticeAutoPop().hashCode());
        result = prime * result + ((getCashType() == null) ? 0 : getCashType().hashCode());
        result = prime * result + ((getLoginAuth() == null) ? 0 : getLoginAuth().hashCode());
        result = prime * result + ((getLoginAuthType() == null) ? 0 : getLoginAuthType().hashCode());
        result = prime * result + ((getGoogleSecretKey() == null) ? 0 : getGoogleSecretKey().hashCode());
        result = prime * result + ((getShopGoukaProtocolPop() == null) ? 0 : getShopGoukaProtocolPop().hashCode());
        result = prime * result + ((getUserNoticeAutoPop() == null) ? 0 : getUserNoticeAutoPop().hashCode());
        result = prime * result + ((getLoginKey() == null) ? 0 : getLoginKey().hashCode());
        result = prime * result + ((getFeePayer() == null) ? 0 : getFeePayer().hashCode());
        result = prime * result + ((getSettlementType() == null) ? 0 : getSettlementType().hashCode());
        result = prime * result + ((getAgentKey() == null) ? 0 : getAgentKey().hashCode());
        result = prime * result + ((getAgentGoodsSwitch() == null) ? 0 : getAgentGoodsSwitch().hashCode());
        result = prime * result + ((getNeedCheckAgent() == null) ? 0 : getNeedCheckAgent().hashCode());
        result = prime * result + ((getMusic() == null) ? 0 : getMusic().hashCode());
        result = prime * result + ((getPcTemplate() == null) ? 0 : getPcTemplate().hashCode());
        result = prime * result + ((getMobileTemplate() == null) ? 0 : getMobileTemplate().hashCode());
        result = prime * result + ((getWechatStockNotify() == null) ? 0 : getWechatStockNotify().hashCode());
        result = prime * result + ((getWechatSellNotify() == null) ? 0 : getWechatSellNotify().hashCode());
        result = prime * result + ((getWechatSigninNotify() == null) ? 0 : getWechatSigninNotify().hashCode());
        result = prime * result + ((getWechatCashNotify() == null) ? 0 : getWechatCashNotify().hashCode());
        result = prime * result + ((getWechatComplaintNotify() == null) ? 0 : getWechatComplaintNotify().hashCode());
        result = prime * result + ((getOauth2QqOpenid() == null) ? 0 : getOauth2QqOpenid().hashCode());
        result = prime * result + ((getOauth2WechatOpenid() == null) ? 0 : getOauth2WechatOpenid().hashCode());
        result = prime * result + ((getRateType() == null) ? 0 : getRateType().hashCode());
        result = prime * result + ((getLockCard() == null) ? 0 : getLockCard().hashCode());
        result = prime * result + ((getPayapi() == null) ? 0 : getPayapi().hashCode());
        result = prime * result + ((getPaykey() == null) ? 0 : getPaykey().hashCode());
        result = prime * result + ((getFeeMoney() == null) ? 0 : getFeeMoney().hashCode());
        result = prime * result + ((getDepositMoney() == null) ? 0 : getDepositMoney().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", parentId=").append(parentId);
        sb.append(", openid=").append(openid);
        sb.append(", username=").append(username);
        sb.append(", password=").append(password);
        sb.append(", mobile=").append(mobile);
        sb.append(", qq=").append(qq);
        sb.append(", email=").append(email);
        sb.append(", subdomain=").append(subdomain);
        sb.append(", shopName=").append(shopName);
        sb.append(", shopNotice=").append(shopNotice);
        sb.append(", statisCode=").append(statisCode);
        sb.append(", payTheme=").append(payTheme);
        sb.append(", payThemeMobile=").append(payThemeMobile);
        sb.append(", stockDisplay=").append(stockDisplay);
        sb.append(", money=").append(money);
        sb.append(", rebate=").append(rebate);
        sb.append(", freezeMoney=").append(freezeMoney);
        sb.append(", status=").append(status);
        sb.append(", isFreeze=").append(isFreeze);
        sb.append(", createAt=").append(createAt);
        sb.append(", ip=").append(ip);
        sb.append(", website=").append(website);
        sb.append(", isClose=").append(isClose);
        sb.append(", shopNoticeAutoPop=").append(shopNoticeAutoPop);
        sb.append(", cashType=").append(cashType);
        sb.append(", loginAuth=").append(loginAuth);
        sb.append(", loginAuthType=").append(loginAuthType);
        sb.append(", googleSecretKey=").append(googleSecretKey);
        sb.append(", shopGoukaProtocolPop=").append(shopGoukaProtocolPop);
        sb.append(", userNoticeAutoPop=").append(userNoticeAutoPop);
        sb.append(", loginKey=").append(loginKey);
        sb.append(", feePayer=").append(feePayer);
        sb.append(", settlementType=").append(settlementType);
        sb.append(", agentKey=").append(agentKey);
        sb.append(", agentGoodsSwitch=").append(agentGoodsSwitch);
        sb.append(", needCheckAgent=").append(needCheckAgent);
        sb.append(", music=").append(music);
        sb.append(", pcTemplate=").append(pcTemplate);
        sb.append(", mobileTemplate=").append(mobileTemplate);
        sb.append(", wechatStockNotify=").append(wechatStockNotify);
        sb.append(", wechatSellNotify=").append(wechatSellNotify);
        sb.append(", wechatSigninNotify=").append(wechatSigninNotify);
        sb.append(", wechatCashNotify=").append(wechatCashNotify);
        sb.append(", wechatComplaintNotify=").append(wechatComplaintNotify);
        sb.append(", oauth2QqOpenid=").append(oauth2QqOpenid);
        sb.append(", oauth2WechatOpenid=").append(oauth2WechatOpenid);
        sb.append(", rateType=").append(rateType);
        sb.append(", lockCard=").append(lockCard);
        sb.append(", payapi=").append(payapi);
        sb.append(", paykey=").append(paykey);
        sb.append(", feeMoney=").append(feeMoney);
        sb.append(", depositMoney=").append(depositMoney);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}